% fname: routing_oddeven__sel_bufferlevel__topology_8x8__.m
% ./noxim -routing oddeven -sel bufferlevel -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 8 

function [max_pir, max_throughput, min_delay] = routing_oddeven__sel_bufferlevel__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
             0.01        23.1849      0.0797695            177           5106          40842
             0.01        21.9915      0.0811426            127           5193          41545
             0.01        22.0469      0.0785625            108           5031          40224
             0.01         22.004      0.0782363            183           5009          40057
             0.01        22.3683      0.0802324            128           5134          41079
             0.01        21.9417       0.078498            131           5025          40191
             0.01        22.9905      0.0822969            121           5267          42136
             0.01        21.5702      0.0790117            148           5056          40454
             0.01        21.8993      0.0790391            165           5056          40468
             0.01        22.0293      0.0799082            138           5111          40913
             0.01        21.9051      0.0785488            121           5026          40217
             0.01        22.4871      0.0812383            135           5202          41594
             0.01        22.2108      0.0788711            165           5048          40382
             0.01        22.2417      0.0785234            125           5023          40204
             0.01        22.1379      0.0785117            150           5025          40198
             0.01        22.1901      0.0795703            150           5093          40740
             0.01        22.1828      0.0796484            136           5098          40780
             0.01        22.5126      0.0785215            149           5023          40203
             0.01         21.742       0.078877            160           5042          40385
             0.01        21.9968       0.079084            126           5063          40491
            0.011        24.2953      0.0875234            254           5604          44812
            0.011        24.4337      0.0894453            219           5725          45796
            0.011        25.1345      0.0894336            178           5725          45790
            0.011        23.9103      0.0874883            160           5597          44794
            0.011         26.208      0.0917168            239           5870          46959
            0.011        23.9559      0.0871406            200           5579          44616
            0.011        23.4906      0.0866211            175           5540          44350
            0.011        23.9445      0.0873594            147           5590          44728
            0.011        24.2174      0.0894648            140           5726          45806
            0.011         23.949      0.0863613            155           5528          44217
            0.011        23.4028      0.0864551            207           5536          44265
            0.011        24.6175      0.0884102            167           5655          45266
            0.011        23.8872      0.0869551            138           5567          44521
            0.011         24.285       0.088168            152           5643          45142
            0.011        22.6997      0.0859199            147           5497          43991
            0.011         24.959      0.0899082            291           5752          46033
            0.011        23.5816      0.0879141            123           5629          45012
            0.011        23.3154      0.0881699            124           5643          45143
            0.011         23.882      0.0878301            189           5625          44969
            0.011        23.5924      0.0864551            208           5533          44265
            0.012        26.1897      0.0968848            179           6200          49605
            0.012        28.0294      0.0967363            232           6194          49529
            0.012        27.6772      0.0978379            205           6261          50093
            0.012        26.5688      0.0956992            170           6125          48998
            0.012        25.3926      0.0959863            156           6144          49145
            0.012        26.5267      0.0962012            219           6155          49255
            0.012         25.912      0.0947969            230           6066          48536
            0.012        27.3492      0.0963379            190           6169          49325
            0.012        25.8887      0.0948047            260           6067          48540
            0.012        26.1615      0.0971426            186           6215          49737
            0.012        27.7748      0.0953887            265           6102          48839
            0.012        27.6031      0.0953828            323           6107          48836
            0.012        25.6554      0.0958047            190           6131          49052
            0.012        26.6001      0.0973496            237           6227          49843
            0.012        25.6871      0.0960527            188           6148          49179
            0.012        26.1233      0.0975801            152           6245          49961
            0.012        26.0508      0.0940781            146           6020          48168
            0.012        26.0664      0.0960781            216           6147          49192
            0.012        26.3786      0.0974844            239           6238          49912
            0.012        26.4165      0.0949961            178           6079          48638
            0.013        29.2111        0.10409            269           6660          53294
            0.013        29.3567       0.103428            261           6619          52955
            0.013        29.0716       0.105406            259           6748          53968
            0.013        27.7335       0.104344            203           6675          53424
            0.013        30.8932       0.107123            175           6854          54847
            0.013        28.8198       0.105904            196           6772          54223
            0.013        28.1257        0.10292            298           6586          52695
            0.013        32.3757       0.105047            321           6720          53784
            0.013        28.8824        0.10484            181           6712          53678
            0.013        28.7916       0.105309            186           6738          53918
            0.013         31.121       0.106307            267           6803          54429
            0.013        30.0951        0.10565            337           6760          54093
            0.013        29.3591       0.105266            242           6734          53896
            0.013        28.3783        0.10209            242           6532          52270
            0.013        30.5264       0.105541            290           6753          54037
            0.013        29.5488       0.103045            197           6593          52759
            0.013        31.8633       0.103596            335           6626          53041
            0.013        28.6982       0.104443            242           6686          53475
            0.013        30.7993       0.105346            282           6741          53937
            0.013        29.4045       0.104369            195           6677          53437
            0.014        33.4874        0.11242            265           7198          57559
            0.014        34.6322       0.113561            326           7271          58143
            0.014         39.007       0.114053            507           7296          58395
            0.014        34.4415        0.11357            297           7269          58148
            0.014        34.8687       0.112387            323           7189          57542
            0.014        32.8193        0.11215            247           7174          57421
            0.014        31.6807       0.110449            206           7068          56550
            0.014        30.5329       0.110232            290           7058          56439
            0.014        32.3254       0.112434            212           7197          57566
            0.014        32.9837       0.110496            367           7072          56574
            0.014        39.7366        0.11442            430           7320          58583
            0.014        33.1016       0.111543            309           7136          57110
            0.014        37.5666       0.111707            367           7152          57194
            0.014        32.5182       0.110621            263           7082          56638
            0.014        31.4091       0.111029            274           7104          56847
            0.014        32.9534       0.111488            450           7139          57082
            0.014        32.5047       0.111115            225           7107          56891
            0.014        36.9784       0.112207            357           7182          57450
            0.014        35.6748       0.112707            371           7216          57706
            0.014        31.5257       0.110258            264           7057          56452
            0.015        46.3473       0.119537            455           7651          61203
            0.015         63.812       0.120619            948           7719          61757
            0.015        38.8167       0.119766            366           7664          61320
            0.015        75.5307       0.120064            819           7684          61473
            0.015        39.2555       0.120676            291           7729          61786
            0.015        37.3768       0.121617            376           7781          62268
            0.015        41.2718       0.121408            460           7764          62161
            0.015        58.0932       0.122713            873           7856          62829
            0.015        36.0532       0.120029            231           7686          61455
            0.015        38.6079       0.120355            427           7700          61622
            0.015         42.643       0.121063            312           7750          61984
            0.015         46.683       0.119412            561           7643          61139
            0.015        37.2029        0.12001            336           7682          61445
            0.015        35.4968       0.115746            317           7408          59262
            0.015        237.602       0.117135           2635           7498          59973
            0.015         47.461       0.120887            462           7737          61894
            0.015        37.8457       0.120078            280           7684          61480
            0.015        45.7662       0.118666            577           7599          60757
            0.015        42.4616       0.119824            371           7666          61350
            0.015        36.5053       0.118578            417           7592          60712
            0.016        56.9464       0.127027            517           8131          65038
            0.016        45.1296       0.128865            348           8248          65979
            0.016        46.4864       0.127965            486           8189          65518
            0.016        46.9107       0.126602            699           8099          64820
            0.016        54.6945       0.129666            473           8295          66389
            0.016         59.047       0.128104            547           8194          65589
            0.016        47.5929       0.125148            525           8006          64076
            0.016        47.2983       0.126543            385           8098          64790
            0.016        179.637       0.126748           2202           8107          64895
            0.016        47.3923       0.128312            436           8208          65696
            0.016        91.9935       0.124326           1699           7949          63655
            0.016        42.7055       0.126746            411           8111          64894
            0.016        94.6754       0.126406           1336           8092          64720
            0.016        43.6138       0.124031            460           7939          63504
            0.016        206.618        0.12575           2517           8047          64384
            0.016        43.4693       0.126156            321           8076          64592
            0.016        74.0428        0.12585            912           8055          64435
            0.016         159.25       0.118264           2696           7571          60551
            0.016        59.9769       0.125904            639           8058          64463
            0.016        702.779       0.111678           5846           7149          57179
            0.017        592.927       0.100588           7397           6440          51501
            0.017        707.921       0.106486           6470           6812          54521
            0.017        643.342       0.110254           6930           7057          56450
            0.017        694.728       0.101123           7017           6471          51775
            0.017        421.093       0.108834           6058           6960          55723
            0.017         893.88       0.103826           7578           6649          53159
            0.017        627.729       0.101203           6798           6483          51816
            0.017        619.768       0.111896           7571           7163          57291
            0.017        424.803       0.128809           5269           8241          65950
            0.017        452.036       0.103482           5467           6618          52983
            0.017        329.684       0.113959           4815           7293          58347
            0.017        613.561       0.108516           7413           6944          55560
            0.017        820.589        0.10799           6851           6909          55291
            0.017        424.378       0.113619           5209           7268          58173
            0.017        538.644       0.115457           6198           7384          59114
            0.017        591.222       0.110725           7907           7087          56691
            0.017        472.655       0.106467           6164           6812          54511
            0.017        77.1344       0.134023           1049           8580          68620
            0.017        501.838       0.107152           6638           6852          54862
            0.017        327.701       0.109451           4601           7001          56039
            0.018        737.946       0.107148           7153           6858          54860
            0.018        589.534       0.105682           6959           6765          54109
            0.018        701.296       0.106678           6739           6823          54619
            0.018         726.44       0.104836           7056           6713          53676
            0.018        971.546      0.0966738           8132           6188          49497
            0.018        770.476        0.10476           7973           6710          53637
            0.018        1046.91      0.0966777           9128           6187          49499
            0.018        851.471      0.0972129           7944           6222          49773
            0.018        785.395       0.104871           7678           6708          53694
            0.018        645.501      0.0983828           8118           6292          50372
            0.018        746.571       0.103303           7202           6606          52891
            0.018        845.514      0.0957207           7324           6129          49009
            0.018        808.136       0.101555           8001           6496          51996
            0.018        839.581       0.105768           7321           6777          54153
            0.018        679.452      0.0996152           7231           6373          51003
            0.018        469.244        0.10825           5986           6923          55424
            0.018        719.464       0.110908           8109           7100          56785
            0.018        613.684       0.108643           6115           6952          55625
            0.018         762.09          0.105           7639           6720          53760
            0.018        660.499       0.102469           7337           6559          52464
            0.019        636.015       0.105854           7191           6774          54197
            0.019        968.343      0.0950293           9174           6085          48655
            0.019        798.213       0.100371           7691           6420          51390
            0.019        1225.59      0.0947031           8115           6057          48488
            0.019        915.043       0.100332           8302           6417          51370
            0.019        1129.73      0.0979668           8529           6268          50159
            0.019        1003.47      0.0997266           8343           6389          51060
            0.019        1125.52      0.0886758           7860           5677          45402
            0.019        764.036      0.0995547           8050           6370          50972
            0.019        1137.91      0.0980918           8243           6282          50223
            0.019        729.764      0.0981367           7320           6279          50246
            0.019        893.961       0.100703           8651           6447          51560
            0.019        845.864      0.0973516           7035           6231          49844
            0.019        1006.01       0.102393           8618           6554          52425
            0.019        770.161       0.102473           8259           6553          52466
            0.019         931.58      0.0979648           8212           6274          50158
            0.019          945.3       0.100418           8285           6423          51414
            0.019        959.858      0.0974277           8115           6230          49883
            0.019        790.339       0.101855           8020           6519          52150
            0.019        794.812      0.0985313           8013           6303          50448
             0.02        1026.15      0.0918945           8556           5888          47050
             0.02        1094.26      0.0974609           8152           6238          49900
             0.02        1092.21      0.0935742           7735           5989          47910
             0.02        1072.89      0.0936836           8485           5998          47966
             0.02        1354.73      0.0910918           8906           5831          46639
             0.02        1043.64      0.0949863           8588           6078          48633
             0.02         1117.5      0.0998613           8260           6392          51129
             0.02        1111.66      0.0963652           9344           6161          49339
             0.02        1335.14       0.100229           8938           6415          51317
             0.02        1096.09      0.0894902           8722           5728          45819
             0.02        1002.07      0.0953906           8481           6104          48840
             0.02        1230.07      0.0937754           9473           6003          48013
             0.02        1040.49       0.101816           8602           6520          52130
             0.02        1153.11      0.0928672           8928           5946          47548
             0.02        902.433      0.0944922           7668           6045          48380
             0.02        1006.04       0.094291           7042           6032          48277
             0.02         1163.9      0.0947324           8638           6064          48503
             0.02        997.956      0.0975449           7893           6242          49943
             0.02        1198.75      0.0960352           9075           6146          49170
             0.02        1006.42      0.0922383           8956           5900          47226
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
